ASP.NET Web Forms এ Authentication এবং Authorization ব্যবহারকারীদের নিরাপদে অ্যাপ্লিকেশনে প্রবেশ এবং বিভিন্ন ফিচারে অ্যাক্সেস নিয়ন্ত্রণ করতে সাহায্য করে। Authentication ব্যবহারকারীর পরিচয় যাচাই করে এবং Authorization যাচাই করে যে একজন ব্যবহারকারী কোন সম্পদ বা ফিচারে অ্যাক্সেস পাবে।
Authentication কী? (What is Authentication?)
Authentication হলো একটি প্রক্রিয়া, যেখানে একটি সিস্টেম ব্যবহারকারীর পরিচয় যাচাই করে। এটি নিশ্চিত করে যে কেউ লগইন করার চেষ্টা করলে, সেই ব্যক্তি আসলেই সে ব্যক্তি কিনা যিনি দাবি করছেন।
ASP.NET Web Forms এ Authentication বিভিন্ন ধরণের হতে পারে:
- Forms Authentication
- Windows Authentication
- Passport Authentication
এই টিউটোরিয়ালে আমরা Forms Authentication ব্যবহার করে পরিচিতি যাচাই করার পদ্ধতি আলোচনা করব।
Forms Authentication সেটআপ
Forms Authentication ব্যবহারকারীদের নাম এবং পাসওয়ার্ডের মাধ্যমে তাদের পরিচয় যাচাই করে এবং সফল লগইন হলে একটি authentication ticket তৈরি করে, যা ব্যবহারকারীর কাছে একটি cookie হিসেবে সংরক্ষিত হয়।
Web.config ফাইলে Authentication কনফিগারেশন
Web.config ফাইলে Forms Authentication কনফিগার করতে হয়। এতে আপনি লগইন পেজ, লগআউট পেজ, এবং authentication mode নির্ধারণ করতে পারবেন।
Web.config:
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx" timeout="30" />
</authentication>
<authorization>
<deny users="?" /> <!-- Anonymous users are denied access -->
</authorization>
</system.web>
</configuration>
এখানে mode="Forms" নির্দেশ করছে যে Forms Authentication ব্যবহার করা হবে। loginUrl="Login.aspx" দ্বারা লগইন পেজের ঠিকানা সেট করা হচ্ছে।
Login এবং Logout পদ্ধতি (Login and Logout Process)
Login পেজের সেটআপ
এখানে একটি উদাহরণ দেয়া হলো যেখানে ব্যবহারকারী নাম এবং পাসওয়ার্ড দিয়ে লগইন করবে।
Login.aspx:
<asp:TextBox ID="Username" runat="server" placeholder="Username" />
<asp:TextBox ID="Password" runat="server" TextMode="Password" placeholder="Password" />
<asp:Button ID="LoginButton" runat="server" Text="Login" OnClick="LoginButton_Click" />
<asp:Label ID="ErrorMessage" runat="server" ForeColor="Red" />
Code-behind (Login.aspx.cs):
protected void LoginButton_Click(object sender, EventArgs e)
{
string username = Username.Text;
string password = Password.Text;
// Dummy credentials for demonstration
if (username == "admin" && password == "password123")
{
// Authentication Success
FormsAuthentication.RedirectFromLoginPage(username, false);
}
else
{
// Authentication Failure
ErrorMessage.Text = "Invalid credentials. Please try again.";
}
}
এখানে FormsAuthentication.RedirectFromLoginPage ব্যবহার করা হচ্ছে, যা সফল লগইন হলে ব্যবহারকারীকে নির্দিষ্ট পৃষ্ঠায় রিডাইরেক্ট করবে।
Logout পদ্ধতি
লগআউট করার জন্য, FormsAuthentication.SignOut() মেথড ব্যবহার করতে হয়, যা সেশন শেষ করে ব্যবহারকারীর কুকি মুছে দেয়।
Logout.aspx:
<asp:Button ID="LogoutButton" runat="server" Text="Logout" OnClick="LogoutButton_Click" />
Code-behind (Logout.aspx.cs):
protected void LogoutButton_Click(object sender, EventArgs e)
{
// Log out the user
FormsAuthentication.SignOut();
Response.Redirect("Login.aspx");
}
এখানে FormsAuthentication.SignOut() ব্যবহার করে ব্যবহারকারীকে লগআউট করা হচ্ছে এবং তাকে লগইন পেজে রিডাইরেক্ট করা হচ্ছে।
Authorization কী? (What is Authorization?)
Authorization হলো প্রক্রিয়া, যা ব্যবহারকারীকে নির্দিষ্ট অ্যাপ্লিকেশন রিসোর্স বা ফিচারে অ্যাক্সেস দেয় বা নিষেধাজ্ঞা আরোপ করে। Authentication সফল হওয়ার পর, Authorization নির্ধারণ করে যে সেই ব্যবহারকারী কোন সেকশন বা ফিচারে অ্যাক্সেস পাবে।
Authorization কনফিগারেশন
ASP.NET Web Forms এ Authorization নির্ধারণের জন্য Web.config ফাইলে authorization এলিমেন্ট ব্যবহার করা হয়। এই সেটিংস অনুযায়ী আপনি নির্দিষ্ট ইউজার বা রোলের উপর অ্যাক্সেস কন্ট্রোল করতে পারবেন।
Web.config এর Authorization কনফিগারেশন:
<configuration>
<system.web>
<authorization>
<allow users="admin" />
<deny users="?" /> <!-- Anonymous users are denied access -->
</authorization>
</system.web>
</configuration>
এখানে শুধুমাত্র admin ইউজারকেই অ্যাক্সেস দেয়া হয়েছে, এবং অন্যান্য সকল অ্যানোনিমাস (অ্যাকাউন্ট না থাকা) ব্যবহারকারীকে নিষেধ করা হয়েছে।
Role-based Authorization:
যদি আপনি role-based authorization ব্যবহার করতে চান, তবে ব্যবহার করতে পারেন।
<configuration>
<system.web>
<authorization>
<allow roles="Admin" />
<deny users="?" />
</authorization>
</system.web>
</configuration>
এখানে শুধুমাত্র Admin রোলের ব্যবহারকারীদের অ্যাক্সেস দেওয়া হয়েছে।
সারাংশ
ASP.NET Web Forms এ Authentication এবং Authorization ব্যবহৃত হয় ব্যবহারকারীদের নিরাপদ লগইন এবং নির্দিষ্ট অ্যাক্সেস কন্ট্রোল করতে। Forms Authentication ব্যবহার করে লগইন প্রক্রিয়া সম্পন্ন করা হয় এবং authorization ব্যবহার করে আপনি কোন ব্যবহারকারী বা রোলের জন্য অ্যাক্সেস কন্ট্রোল করতে পারেন। Web.config ফাইলে এসব কনফিগারেশন সেটআপ করা যায়।
Read more